Methods and systems for camera to lidar alignment using road poles

ABSTRACT

Systems and methods are provided for generating alignment parameters for processing data associated with a vehicle. In one embodiment, a method includes: receiving image data associated with an environment of the vehicle; receiving lidar data associated with the environment of the vehicle; processing, by a processor, the image data to determine data points associated with at least one pole identified within image data; processing, by the processor, the lidar data to determine data points associated with at least one pole identified within the lidar data; selectively storing the data points as data point pairs in a data buffer; iteratively processing, by the processor, the data point pairs with a plurality of perturbations to determine a transformation matrix; generating, by the processor, alignment data based on the transformation matrix; and processing future data based on the alignment parameters.

TECHNICAL FIELD

The technical field generally relates to computer vision, and moreparticularly to methods and systems for determining camera to lidaralignment information for use in computer vision in a vehicle.

Modern vehicles are typically equipped with one or more optical camerasthat are configured to provide image data that may be displayed to anoccupant of the vehicle and that may be used for determining elements ofthe environment of the vehicle. The image data may show a virtual sceneof the vehicle’s surroundings. The virtual scene may be generated basedon data from one or more cameras and data from one or more other sensorssuch as lidar or radar. For example, the image data are taken fromdifferent image sources that are located at different positions aboutthe vehicle or from a single source that rotates with respect to thevehicle. The image data is evaluated and merged into a singleperspective based on alignment information. Methods to determinealignment information can be computationally intensive, especially ifperformed in real-time.

Accordingly, it is desirable to provide improved systems and methods fordetermining camera to lidar alignment information. Furthermore, otherdesirable features and characteristics of the present invention willbecome apparent from the subsequent detailed description and theappended claims, taken in conjunction with the accompanying drawings andthe foregoing technical field and background

SUMMARY

Systems and methods are provided for generating alignment parameters forprocessing image data associated with a vehicle. In one embodiment, amethod includes: receiving image data associated with an environment ofthe vehicle; receiving lidar data associated with the environment of thevehicle; processing, by a processor, the image data to determine datapoints associated with at least one pole identified within image data;processing, by the processor, the lidar data to determine data pointsassociated with at least one pole identified within the lidar data;selectively storing the data points as data point pairs in a databuffer; iteratively processing, by the processor, the data point pairswith a plurality of perturbations to determine a transformation matrix;generating, by the processor, alignment data based on the transformationmatrix; and processing future image data based on the alignmentparameters.

In various embodiments, the processing the image data includesprocessing the image data with a cross correlation method between theimage data and a two-dimensional filter defining at least one ofvertical poles and horizontal poles; and producing a binary outputindicating a detection of a road pole based on the processing.

In various embodiments, the two-dimensional filter is learned andnormalized.

In various embodiments, the processing the lidar data incudes: removingpoints from the lidar point cloud points associated with a ground plane,and points associated with a background to produce foreground points;applying a clustering method to the foreground points to determineobjects within the scene; and filtering the objects based on geometricalconditions associated with a pole to produce pole objects; andprojecting the pole objects into a coordinate system associated with theimage data.

In various embodiments, the clustering method is a density-based spatialclustering of applications with noise.

In various embodiments, the geometrical conditions include a width and aheight associated with the pole.

In various embodiments, the iteratively processing includes evaluatingthe data point pairs for each perturbation to produce a transformationmatrix; determining a score for each transformation matrix; andselecting a transformation matrix associated with a score that isgreater than a threshold, wherein the alignment parameters aredetermined from the selected transformation matrix.

In various embodiments, the method includes filtering data point pairsbased on a proximity to the camera of the at least one road pole fromthe image data and a proximity to the camera of the at least one roadpole from the lidar data.

In various embodiments, the method includes storing a count of a numberof iterations and wherein the transformation matrix is selected based onthe count being greater than a threshold.

In another embodiment, a computer implemented system for generatingalignment parameters for processing data associated with a vehicle isprovided. The system includes: a data storage element comprisingcomputer readable instructions; and a processor configured to executethe computer readable instructions, the computer readable instructionscontrolling the processor to perform operations. The operations includereceiving image data associated with an environment of the vehicle;receiving lidar data associated with the environment of the vehicle;processing the image data to determine data points associated with atleast one road pole identified within the image data; processing thelidar data to determine data points associated with at least one roadpole identified within the lidar data; selectively storing the datapoints as data point pairs in a data buffer; iteratively processing, bythe processor, the data point pairs with a plurality of perturbations todetermine a transformation matrix; generating alignment data based onthe transformation matrix; and processing future data based on thealignment parameters.

In various embodiments, the processing the image data includes:processing the image data with a cross correlation method between theimage data and a two-dimensional filter defining at least one ofvertical poles and horizontal poles; and producing a binary outputindicating a detection of a road pole based on the processing.

In various embodiments, the two-dimensional filter is learned andnormalized.

In various embodiments, the processing the lidar data includes: removingpoints from the lidar point cloud points associated with a ground plane,and points associated with a background to produce foreground points;applying a clustering method to the foreground points to determineobjects within the scene; and filtering the objects based on geometricalconditions associated with a pole to produce pole objects; andprojecting the pole objects into a coordinate system associated with theimage data.

In various embodiments, the clustering method is a density-based spatialclustering of applications with noise.

In various embodiments, the geometrical conditions include a width and aheight associated with the pole.

In various embodiments, the iteratively processing includes: evaluatingthe data point pairs for each perturbation to produce a transformationmatrix; determining a score for each transformation matrix; andselecting a transformation matrix associated with a score that isgreater than a threshold, wherein the alignment parameters aredetermined from the selected transformation matrix.

In various embodiments, the system includes filtering data point pairsbased on a proximity to the camera of the at least one road pole fromthe image data and a proximity to the camera of the at least one roadpole from the lidar data.

In various embodiments, the system includes storing a count of a numberof iterations and wherein the transformation matrix is selected based onthe count being greater than a threshold.

In another embodiment, a vehicle includes: a lidar configured togenerate image data associated with an environment of the vehicle; acamera configured to generate lidar data associated with the environmentof the vehicle; and a controller configured to, by a processor,receiving the image data and the lidar data, process the image data todetermine data points associated with at least one road pole identifiedwithin image data, process the lidar data to determine data pointsassociated with at least one road pole identified within the lidar data,selectively store the data points as data point pairs in a data buffer,iteratively process the data point pairs with a plurality ofperturbations to determine a transformation matrix, generate alignmentdata based on the transformation matrix, and process future image databased on the alignment parameters.

In various embodiments, the controller is further configured to processthe image data with a cross correlation method between the image dataand a learned normalized two-dimensional filter defining at least one ofvertical poles and horizontal poles and produce a binary outputindicating a detection of a road pole based on the processing.

BRIEF DESCRIPTION OF THE DRAWINGS

The exemplary embodiments will hereinafter be described in conjunctionwith the following drawing figures, wherein like numerals denote likeelements, and wherein:

FIG. 1 is a schematic illustration of a vehicle with a controllerimplementing functions for generating alignment information inaccordance with various embodiments;

FIG. 2 is dataflow diagram illustrating the controller of the vehicle inaccordance with various embodiments; and

FIG. 3 is a flowchart illustrating a method performed by the vehicle andthe controller in accordance with various embodiments.

DETAILED DESCRIPTION

The following detailed description is merely exemplary in nature and isnot intended to limit the application and uses. Furthermore, there is nointention to be bound by any expressed or implied theory presented inthe preceding technical field, background, brief summary, or thefollowing detailed description. As used herein, the term module refersto any hardware, software, firmware, electronic control component,processing logic, and/or processor device, individually or in anycombination, including without limitation: application specificintegrated circuit (ASIC), an electronic circuit, a processor (shared,dedicated, or group) and memory that executes one or more software orfirmware programs, a combinational logic circuit, and/or other suitablecomponents that provide the described functionality.

Embodiments of the present disclosure may be described herein in termsof functional and/or logical block components and various processingsteps. It should be appreciated that such block components may berealized by any number of hardware, software, and/or firmware componentsconfigured to perform the specified functions. For example, anembodiment of the present disclosure may employ various integratedcircuit components, e.g., memory elements, digital signal processingelements, logic elements, look-up tables, or the like, which may carryout a variety of functions under the control of one or moremicroprocessors or other control devices. In addition, those skilled inthe art will appreciate that embodiments of the present disclosure maybe practiced in conjunction with any number of systems, and that thesystems described herein is merely exemplary embodiments of the presentdisclosure.

For the sake of brevity, conventional techniques related to signalprocessing, data transmission, signaling, control, and other functionalaspects of the systems (and the individual operating components of thesystems) may not be described in detail herein. Furthermore, theconnecting lines shown in the various figures contained herein areintended to represent example functional relationships and/or physicalcouplings between the various elements. It should be noted that manyalternative or additional functional relationships or physicalconnections may be present in an embodiment of the present disclosure.

With reference to FIG. 1 , a vehicle 10 is shown having a system 100 inaccordance with various embodiments. Generally, the system 100determines alignment information between different data sources of thevehicle. The alignment information can be used, for example, inprocessing and/or generating image data from the multiple data sources.The generated image data may be used, for example, to display a surroundview of the vehicle’s environment on a display 50 of the vehicle 10. Ascan be appreciated, the alignment data can be used for other purposessuch as controlling or navigating the vehicle and is not limited to thedisplay example.

As shown in FIG. 1 , the vehicle 10 generally includes a chassis 12, abody 14, front wheels 16, and rear wheels 18. The body 14 is arranged onthe chassis 12 and substantially encloses components of the vehicle 10.The body 14 and the chassis 12 may jointly form a frame. The wheels 16and 18 are each rotationally coupled to the chassis 12 near a respectivecorner of the body 14.

In various embodiments, the vehicle 10 is an autonomous vehicle. Theautonomous vehicle is, for example, a vehicle that is automaticallycontrolled to carry passengers from one location to another. The vehicle10 is depicted in the illustrated embodiment as a passenger car, but itshould be appreciated that any other vehicle including motorcycles,trucks, sport utility vehicles (SUVs), recreational vehicles (RVs),marine vessels, aircraft, etc., can also be used. In an exemplaryembodiment, the autonomous vehicle is an automation system of Level Twoor higher. A Level Two automation system indicates “partial automation.”However, in other embodiments, the autonomous vehicle may be a so-calledLevel Three, Level Four or Level Five automation system. A Level Threeautomation system indicates conditional automation. A Level Four systemindicates “high automation,” referring to the driving mode-specificperformance by an automated driving system of all aspects of the dynamicdriving task, even when a human driver does not respond appropriately toa request to intervene. A Level Five system indicates “full automation”,referring to the full-time performance by an automated driving system ofall aspects of the dynamic driving task under all roadway andenvironmental conditions that can be managed by a human driver.

However, it is to be understood that the vehicle 10 may also be aconventional vehicle without any autonomous driving functions. Thevehicle 10 may implement the functions and methods for generatingalignment information in accordance with the present disclosure.

As shown, the vehicle 10 generally includes a propulsion system 20, atransmission system 22, a steering system 24, a brake system 26, asensor system 28, an actuator system 30, at least one data storagedevice 32, at least one controller 34, and a communication system 36.The propulsion system 20 may, in various embodiments, include aninternal combustion engine, an electric machine such as a tractionmotor, a fuel cell propulsion system, and/or a combination thereof. Thetransmission system 22 is configured to transmit power from thepropulsion system 20 to the vehicle wheels 16 and 18 according toselectable speed ratios. According to various embodiments, thetransmission system 22 may include a step-ratio automatic transmission,a continuously-variable transmission, a manual transmission, or anyother appropriate transmission.

The brake system 26 is configured to provide braking torque to thevehicle wheels 16 and 18. The brake system 26 may, in variousembodiments, include friction brakes, brake by wire, a regenerativebraking system such as an electric machine, and/or other appropriatebraking systems. The steering system 24 influences a position of the ofthe vehicle wheels 16 and 18. While depicted as including a steeringwheel for illustrative purposes, in some embodiments contemplated withinthe scope of the present disclosure, the steering system 24 may notinclude a steering wheel.

The sensor system 28 includes one or more sensing devices 40 a-40 n thatsense observable conditions of the exterior environment and/or theinterior environment of the vehicle 10. The sensing devices 40 a-40 ncan include, but are not limited to, radars, lidars, global positioningsystems (GPS), optical cameras, thermal cameras, ultrasonic sensors,and/or other sensors. The sensing devices 40 a-40 n are furtherconfigured to sense observable conditions of the vehicle 10. The sensingdevices 40 a-40 n can include, but are not limited to, speed sensors,position sensors, inertial measurement sensors, temperature sensors,pressure sensors, etc.

The actuator system 30 includes one or more actuator devices 42 a-42 nthat control one or more vehicle features such as, but not limited to,the propulsion system 20, the transmission system 22, the steeringsystem 24, and the brake system 26. In various embodiments, the vehiclefeatures can further include interior and/or exterior vehicle featuressuch as, but are not limited to, doors, a trunk, and cabin features suchas air, music, lighting, etc. (not numbered).

The communication system 36 is configured to wirelessly communicateinformation to and from other entities 48, such as but not limited to,other vehicles (“V2V” communication,) infrastructure (“V2I”communication), remote systems, and/or personal devices (described inmore detail with regard to FIG. 2 ). In an exemplary embodiment, thecommunication system 36 is a wireless communication system configured tocommunicate via a wireless local area network (WLAN) using IEEE 802.11standards or by using cellular data communication. However, additional,or alternate communication methods, such as a dedicated short-rangecommunications (DSRC) channel, are also considered within the scope ofthe present disclosure. DSRC channels refer to one-way or two-wayshort-range to medium-range wireless communication channels specificallydesigned for automotive use and a corresponding set of protocols andstandards.

The data storage device 32 stores data for use in automaticallycontrolling functions of the vehicle 10. In various embodiments, thedata storage device 32 stores defined maps of the navigable environment.The defined maps may include a variety of data other than road dataassociated therewith, including elevation, climate, lighting, etc. Invarious embodiments, the defined maps may be predefined by and obtainedfrom a remote system (described in further detail with regard to FIG. 2). For example, the defined maps may be assembled by the remote systemand communicated to the vehicle 10 (wirelessly and/or in a wired manner)and stored in the data storage device 32. As can be appreciated, thedata storage device 32 may be part of the controller 34, separate fromthe controller 34, or part of the controller 34 and part of a separatesystem.

The controller 34 includes at least one processor 44 and a computerreadable storage device or media 46. The processor 44 can be any custommade or commercially available processor, a central processing unit(CPU), a graphics processing unit (GPU), an auxiliary processor amongseveral processors associated with the controller 34, a semiconductorbased microprocessor (in the form of a microchip or chip set), amacroprocessor, any combination thereof, or generally any device forexecuting instructions. The computer readable storage device or media 46may include volatile and nonvolatile storage in read-only memory (ROM),random-access memory (RAM), and keep-alive memory (KAM), for example.KAM is a persistent or non-volatile memory that may be used to storevarious operating variables while the processor 44 is powered down. Thecomputer-readable storage device or media 46 may be implemented usingany of a number of known memory devices such as PROMs (programmableread-only memory), EPROMs (electrically PROM), EEPROMs (electricallyerasable PROM), flash memory, or any other electric, magnetic, optical,or combination memory devices capable of storing data, some of whichrepresent executable instructions, used by the controller 34 incontrolling and executing functions of the vehicle 10.

The instructions may include one or more separate programs, each ofwhich comprises an ordered listing of executable instructions forimplementing logical functions. The instructions, when executed by theprocessor 44, receive and process signals from the sensor system 28,perform logic, calculations, methods and/or algorithms for automaticallycontrolling the components of the vehicle 10, and generate controlsignals to the actuator system 30 to automatically control thecomponents of the vehicle 10 based on the logic, calculations, methods,and/or algorithms. Although only one controller 34 is shown in FIG. 1 ,embodiments of the vehicle 10 can include any number of controllers 34that communicate over any suitable communication medium or a combinationof communication mediums and that cooperate to process the sensorsignals, perform logic, calculations, methods, and/or algorithms, andgenerate control signals to automatically control features of thevehicle 10.

In various embodiments, one or more instructions of the controller 34are embodied in the system 100 and, when executed by the processor 44,process image data from at least one optical camera of the sensor system28 and a point cloud from at least one lidar of the sensor system 28 todetect vertical and/or horizontal road poles in the scene. Theinstructions, when executed by the processor 44, use pole data todetermine camera to lidar alignment information. The camera alignmentinformation is then used to assemble image data for display or for otherpurposes within the vehicle 10.

It will be appreciated that the controller 34 may otherwise differ fromthe embodiments depicted in FIG. 1 . For example, the controller 34 maybe coupled to or may otherwise utilize one or more remote computersystems and/or other control systems, for example as part of one or moreof the above-identified vehicle devices and systems. It will beappreciated that while this exemplary embodiment is described in thecontext of a fully functioning computer system, those skilled in the artwill recognize that the mechanisms of the present disclosure are capableof being distributed as a program product with one or more types ofnon-transitory computer-readable signal bearing media used to store theprogram and the instructions thereof and carry out the distributionthereof, such as a non-transitory computer readable medium bearing theprogram and containing computer instructions stored therein for causinga computer processor (such as the processor 44) to perform and executethe program. Such a program product may take a variety of forms, and thepresent disclosure applies equally regardless of the particular type ofcomputer-readable signal bearing media used to carry out thedistribution. Examples of signal bearing media include recordable mediasuch as floppy disks, hard drives, memory cards and optical disks, andtransmission media such as digital and analog communication links. Itwill be appreciated that cloud-based storage and/or other techniques mayalso be utilized in certain embodiments. It will similarly beappreciated that the computer system of the controller 34 may alsootherwise differ from the embodiment depicted in FIG. 1 , for example inthat the computer system of the controller 34 may be coupled to or mayotherwise utilize one or more remote computer systems and/or othercontrol systems.

With reference to FIG. 2 , and with continued reference to FIG. 1 , adataflow diagram illustrates elements of the system 100 of FIG. 1 inaccordance with various embodiments. As can be appreciated, variousembodiments of the system 100 according to the present disclosure mayinclude any number of modules embedded within the controller 34 whichmay be combined and/or further partitioned to similarly implementsystems and methods described herein. Furthermore, inputs to the system100 may be received from the sensor system 28, received from othercontrol modules (not shown) associated with the vehicle 10, and/ordetermined/modeled by other sub-modules (not shown) within thecontroller 34 of FIG. 1 . Furthermore, the inputs might also besubjected to preprocessing, such as sub-sampling, noise-reduction,normalization, feature-extraction, missing data reduction, and the like.In various embodiments, the modules of the system 100 include an imagedata processing module 102, a lidar data processing module 104, a datapair selection module 106, and an alignment determination module 108.

In various embodiments, the image data processing module 102 processesimage data 110 to produce pole data 112. The image data 110 includes atwo-dimensional image of a scene sensed from the environment andgenerated by the camera. The lidar data processing module 104 processeslidar data 114 to produce pole data 116. The lidar data 114 includes athree-dimensional point cloud of an environment generated by the lidar.

The data pair selection module 106 processes the pole data 112, 116 toselectively store data pairs in a data buffer 118. The alignmentdetermination module 108 processes the data pairs from the data buffer118 using an iterative method to determine alignment data 120 thatdefines alignment information between the camera and the lidar.

With reference to FIG. 3 and with continued reference to FIGS. 1-2 ,flowcharts are provided of a methods 300 for performing lidar to cameraalignment as performed by the system 100 of FIGS. 1 and 2 . As can beappreciated in light of the disclosure, the order of operation withinthe methods 300 is not limited to the sequential execution asillustrated in FIG. 3 , but may be performed in one or more varyingorders as applicable and in accordance with the present disclosure. Invarious embodiments, the method 300 can be scheduled to run based on oneor more predetermined events, and/or can run continuously duringoperation of the vehicle 10.

In one example, the method 300 may begin at 305. At 310, image data 110and lidar data 114 are received. At 320, the image data 110 is processedto identify pole data 112. For example, the image data 110 is processedusing a normalized two dimensional cross-correlation between definedpole filters and the image to localize horizontal and vertical poles. At330, the lidar data 114 is processed to determine the pole data 116. Forexample, the lidar data 114 is processed by first identifying andremoving the ground plane and any background points (e.g., pointsgreater than sixty meters from the camera). The remaining foregroundpoints are then processed using a clustering method (e.g., density basedspatial clustering of applications with noise (DB Scan), or othermethod) followed by a filtering method (e.g., based filters ongeometrical conditions such as height and width associated with poles)to identify the pole points.

Thereafter, at 340, noise clusters are removed through a proximityfilter, which evaluates the detected pole points 116 from the lidar data114 with the pole points 112 estimated from the image data 110. If polesdetected from both the image data 110 and the lidar data 114 and arewithin a specified proximity, an inverse distance transform (IDT) of thepole data 112 result generated from the image data 110 is generated andthe processed data pairs of pole data 112, 116 are stacked in the databuffer 118 at 350.

Once the data buffer 118 is full (e.g., ten data pairs) at 360,alignment is performed at 370. For example, an iterative alignmentmethod searches through a group of perturbations in order to find anoptimal transformation matrix. In various embodiments, a score is thencomputed from the optimal transformation matrix and compared to athreshold score. The method 300 continues until a threshold score isreached at 380.

For, every iteration of the method 300 that produces a threshold scoreat 380, the alignment method 300 increments a stop counter at 390. Oncethe stop counter reaches a threshold (e.g., 100 counts) at 400, thealignment data 120 is made available from the final transformationmatrix and the method may end at 410.

As can be appreciated, the computational resources needed for aligning acamera with a lidar is thus improved by the methods and systemsdescribed herein, and accordingly, the claimed embodiments effectuate animprovement in the technical field of computer vision.

While at least one exemplary embodiment has been presented in theforegoing detailed description, it should be appreciated that a vastnumber of variations exist. It should also be appreciated that theexemplary embodiment or exemplary embodiments are only examples, and arenot intended to limit the scope, applicability, or configuration of thedisclosure in any way. Rather, the foregoing detailed description willprovide those skilled in the art with a convenient road map forimplementing the exemplary embodiment or exemplary embodiments. Itshould be understood that various changes can be made in the functionand arrangement of elements without departing from the scope of thedisclosure as set forth in the appended claims and the legal equivalentsthereof.

What is claimed is:
 1. A method for generating alignment parameters forprocessing data associated with a vehicle, the method comprising:receiving image data associated with an environment of the vehicle;receiving lidar data associated with the environment of the vehicle;processing, by a processor, the image data to determine data pointsassociated with at least one road pole identified within image data;processing, by the processor, the lidar data to determine data pointsassociated with at least one road pole identified within the lidar data;selectively storing the data points as data point pairs in a databuffer; iteratively processing, by the processor, the data point pairswith a plurality of perturbations to determine a transformation matrix;generating, by the processor, alignment data based on the transformationmatrix; and processing future data based on the alignment parameters. 2.The method of claim 1, wherein the processing the image data comprises:processing the image data with a cross correlation method between theimage data and a two-dimensional filter defining at least one ofvertical poles and horizontal poles; and producing a binary outputindicating a detection of a road pole based on the processing.
 3. Themethod of claim 2, wherein the two-dimensional filter is learned andnormalized.
 4. The method of claim 1, wherein the processing the lidardata comprises: removing points from the lidar point cloud pointsassociated with a ground plane, and points associated with a backgroundto produce foreground points; applying a clustering method to theforeground points to determine objects within the scene; and filteringthe objects based on geometrical conditions associated with a pole toproduce pole objects; and projecting the pole objects into a coordinatesystem associated with the image data.
 5. The method of claim 4, whereinthe clustering method is a density-based spatial clustering ofapplications with noise.
 6. The method of claim 4, wherein thegeometrical conditions include a width and a height associated with thepole.
 7. The method of claim 1, wherein the iteratively processingcomprises evaluating the data point pairs for each perturbation toproduce a transformation matrix; determining a score for eachtransformation matrix; and selecting a transformation matrix associatedwith a score that is greater than a threshold, wherein the alignmentparameters are determined from the selected transformation matrix. 8.The method of claim 1, further comprising filtering data point pairsbased on a proximity to the camera of the at least one road pole fromthe image data and a proximity to the camera of the at least one roadpole from the lidar data.
 9. The method of claim 1, further comprisingstoring a count of a number of iterations and wherein the transformationmatrix is selected based on the count being greater than a threshold.10. A computer implemented system for generating alignment parametersfor processing data associated with a vehicle, the system comprising: adata storage element comprising computer readable instructions; and aprocessor configured to execute the computer readable instructions, thecomputer readable instructions controlling the processor to performoperations comprising: receiving image data associated with anenvironment of the vehicle; receiving lidar data associated with theenvironment of the vehicle; processing the image data to determine datapoints associated with at least one road pole identified within theimage data; processing the lidar data to determine data pointsassociated with at least one road pole identified within the lidar data;selectively storing the data points as data point pairs in a databuffer; iteratively processing, by the processor, the data point pairswith a plurality of perturbations to determine a transformation matrix;generating alignment data based on the transformation matrix; andprocessing future data based on the alignment parameters.
 11. The systemof claim 10, wherein the processing the image data comprises: processingthe image data with a cross correlation method between the image dataand a two-dimensional filter defining at least one of vertical poles andhorizontal poles; and producing a binary output indicating a detectionof a road pole based on the processing.
 12. The system of claim 11,wherein the two-dimensional filter is learned and normalized.
 13. Thesystem of claim 10, wherein the processing the lidar data comprises:removing points from the lidar point cloud points associated with aground plane, and points associated with a background to produceforeground points; applying a clustering method to the foreground pointsto determine objects within the scene; and filtering the objects basedon geometrical conditions associated with a pole to produce poleobjects; and projecting the pole objects into a coordinate systemassociated with the image data.
 14. The system of claim 13, wherein theclustering method is a density-based spatial clustering of applicationswith noise.
 15. The system of claim 13, wherein the geometricalconditions include a width and a height associated with the pole. 16.The system of claim 10, wherein the iteratively processing comprisesevaluating the data point pairs for each perturbation to produce atransformation matrix; determining a score for each transformationmatrix; and selecting a transformation matrix associated with a scorethat is greater than a threshold, wherein the alignment parameters aredetermined from the selected transformation matrix.
 17. The system ofclaim 10, further comprising filtering data point pairs based on aproximity to the camera of the at least one road pole from the imagedata and a proximity to the camera of the at least one road pole fromthe lidar data.
 18. The system of claim 10, further comprising storing acount of a number of iterations and wherein the transformation matrix isselected based on the count being greater than a threshold.
 19. Avehicle, comprising: a lidar configured to generate image dataassociated with an environment of the vehicle; a camera configured togenerate lidar data associated with the environment of the vehicle; anda controller configured to, by a processor, receiving the image data andthe lidar data, process the image data to determine data pointsassociated with at least one road pole identified within image data,process the lidar data to determine data points associated with at leastone road pole identified within the lidar data, selectively store thedata points as data point pairs in a data buffer, iteratively processthe data point pairs with a plurality of perturbations to determine atransformation matrix, generate alignment data based on thetransformation matrix, and process future image data based on thealignment parameters.
 20. The vehicle of claim 19, wherein thecontroller is further configured to process the image data with a crosscorrelation method between the image data and a learned normalizedtwo-dimensional filter defining at least one of vertical poles andhorizontal poles and produce a binary output indicating a detection of aroad pole based on the processing.